/**
 * Classe criada para padronizar todas as classes de negócio do projeto
 */

package negocio;

import java.util.List;

/**
 *
 * @author igo
 */
public interface Negocio {

    /**
     *  Esta função passa o objeto parâmetro para a classe
     * de controle de acesso aos dados, chamando a função
     * dao.create(Object o)
     *
     * @param funcionario
     */
    public boolean inserir(Object objeto);

    /**
     *  Esta função passa o objeto fornecido como parâmetro
     * para a função dao.merge(Object o), para que seja
     * alterado no banco de dados
     *
     * @param funcionario
     */
    public boolean alterar(Object objeto);


    /**
     * Método que passa um objeto para a camada de acesso aos dados
     * para que seja excluído do banco de dados
     *
     * @param funcionario
     */
    public boolean excluir(Object objeto);

    /**
     * Método que chama a função dao.findFuncionarioEntities() e recebe
     * uma lista(List<Object>) e retorna para o controlador
     *
     * @return Lista de todos os objetos existentes no banco de dados
     */
    public List listar();

    /**
     *
     * @param funcionario
     * @return Lista com todos os objetos existentes no banco de dados que tenham as características do objeto fornecido como parâmetro
     */
    public List<Object> pesquisar(Object objeto);

    /**
     *
     * @return a mensagem criada pela cama de negócio que será
     * vizualizada pelo cliente
     */
    public String getMensagem();
}
